사이트 내 전체검색
동영상 컷팅 & 썸네일 이미지 추출 *
로빈아빠
https://cmd.kr/server/995 URL이 복사되었습니다.

본문

동영상 컷팅 예제

 

* 0에서 100 초 단위로 동영상을 잘라 재생하고 싶다면 아래의 명령어를 사용한다.

  1.  C:\>ffmpeg -ss 0 -i inputfile.flv -t 100 -sameq outfile.flv

 

  • 옵션 설명

    • ss : 시작 offset을 세팅 (입력 값은 초 단위다. )
    • t : 지속시간 (역시 초단위)
    • sameq : 입출력파일간의 같은 퀄리티를 제공

 

 

그리고 UCC 사이트처럼 동영상의 대표 이미지를 추출하고 싶으면 이때는 -ss, vframes 옵션을 사용한다.

동영상 썸네일 추출 예제

  1. c:\>ffmpeg -i "ok.flv" -an -ss 00:00:01 -r 1 -vframes 1 -y "%d.jpg"

 

  •  옵션 설명

    • ss (time_off)        : 시작 offset을 세팅 - 언제부터 썸네일을 추출할 것인가?
    • vframes number     : 기록할 비디오 프레임의 숫자 - 몇장 뽑을 것인가?
    • y : 오버라이트를 할 것인가?

마지막 아웃풋 파일의 %d는 C 언어에서 사용하는 변환 문자 (decimal)와 비슷한 의미로 보면 된다.

%d.jpg 는 1.jpg로 생성된다. 그러니 관리를 위해서 인풋파일명_%2d 로 하는게 좋을 듯 싶다.

 

그리고 만약 UCC 사이트를 만들 계획이 있다면 하나의 썸네일 이미지만 추출하는 게 아니라

하나의 동영상에 대해서 여러개의 대표 이미지를 추출할 필요성이 있을 것이다.

 

이때 필요한 이미지가 10장이라고 치자. 그리고 위에 나와있는 -vframes 옵션을 이용하여

-vframes 10 이라는 옵션만 추가하여 명령어를 날렸다고 하자.

그런데 아마 원하는 결과는 얻을 순 없을 것이다. ( 세상은 그리 만만하지 않다.)

 

별 다른 옵션없이 -vframes 옵션만 사용한다면 추출된 10장의 이미지들이

단지 1프레임 간격으로 연달아 추출되버려서 대표라고 부르기에는 민망한 사진들만 나열될테니 말이다.

 

그래서 이를 위해 -r 옵션을 활용 해야 한다.  이 옵션은 ffmpeg 의 help 메뉴얼에서도 나왔다시피

  •  -r rate : set frame rate (Hz value, fraction or abbreviation - default 25)

처럼 프레임 레이트를 설정하는 것이다.

 

즉, 프레임 레이트를 강제로 낮춰서 이미지를 뽑아 내야 한다.

 5초 단위로 썸네일 이미지 추출하기
  1. c:\> ffmpeg -i "ok.flv" -an -ss 00:00:00 -qscale 1 -r 0.2 -vframes 10 -y "%3d.png"

 

그런데 이상하게 위 명령어를 이용하여 다수의 썸네일 이미지를 추출하면 시간 간격으로 잘 뽑히긴 하나,
처음 1번째 2번째 사진만 거의 프레임의 변화가 없이 추출된다..

이 부분을 해결해볼려고 노력해봤으나.. 방법을 찾기는 어려웠고. 그냥 가장 첫번째 이미지는 자바 쪽에서
강제로 지우는 게 가장 속이 편할 거 같다.

댓글목록

등록된 댓글이 없습니다.

1,139 (7/23P)

Search

Copyright © Cmd 명령어 18.216.190.41